summaryrefslogtreecommitdiff
path: root/app/[lng]/evcp/(evcp)/approval/template/[id]/page.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'app/[lng]/evcp/(evcp)/approval/template/[id]/page.tsx')
-rw-r--r--app/[lng]/evcp/(evcp)/approval/template/[id]/page.tsx58
1 files changed, 58 insertions, 0 deletions
diff --git a/app/[lng]/evcp/(evcp)/approval/template/[id]/page.tsx b/app/[lng]/evcp/(evcp)/approval/template/[id]/page.tsx
new file mode 100644
index 00000000..136b09eb
--- /dev/null
+++ b/app/[lng]/evcp/(evcp)/approval/template/[id]/page.tsx
@@ -0,0 +1,58 @@
+import * as React from "react"
+import { type Metadata } from "next"
+import { notFound } from "next/navigation"
+
+import { getApprovalTemplate } from "@/lib/approval-template/service"
+import { getApprovalLineOptions, getApprovalLineCategories } from "@/lib/approval-line/service"
+import { ApprovalTemplateEditor } from "@/lib/approval-template/editor/approval-template-editor"
+import { variables as configVariables } from "./config"
+
+interface ApprovalTemplateDetailPageProps {
+ params: Promise<{
+ id: string
+ }>
+}
+
+export async function generateMetadata({ params }: ApprovalTemplateDetailPageProps): Promise<Metadata> {
+ const { id } = await params
+ const template = await getApprovalTemplate(id)
+
+ if (!template) {
+ return {
+ title: "템플릿을 찾을 수 없음",
+ }
+ }
+
+ return {
+ title: `${template.name} - 템플릿 편집`,
+ description: template.description || `${template.name} 템플릿을 편집합니다.`,
+ }
+}
+
+export default async function ApprovalTemplateDetailPage({ params }: ApprovalTemplateDetailPageProps) {
+ const { id } = await params
+ const [template, approvalLineOptions, approvalLineCategories] = await Promise.all([
+ getApprovalTemplate(id),
+ getApprovalLineOptions(),
+ getApprovalLineCategories(),
+ ])
+
+ if (!template) {
+ notFound()
+ }
+
+ return (
+ <div className="flex flex-1 flex-col">
+ {template && (
+ <ApprovalTemplateEditor
+ templateId={id}
+ initialTemplate={template}
+ staticVariables={configVariables as unknown as Array<{ variableName: string }>}
+ approvalLineOptions={approvalLineOptions}
+ approvalLineCategories={approvalLineCategories}
+ />
+ )}
+ </div>
+ )
+}
+